package 面向对象_上.h递归.练习1;

public class RecursionTest {

    public static void main(String[] args) {

        RecursionTest test = new RecursionTest();
        int value = test.f(10);
        System.out.println(value);
    }

    //例3:已知有一个数列：f(0) = 1,f(1) = 4,f(n+2)=2*f(n+1) + f(n),
    //其中n是大于0的整数，求f(10)的值。
    public int f(int n){
        if(n == 0){
            return 1;
        }else if(n == 1){
            return 4;
        }else{
            return 2*f(n-1) + f(n-2);
        }
    }

    //例4:已知一个数列：f(20) = 1,f(21) = 4,f(n+2) = 2*f(n+1)+f(n),
    //其中n是大于0的整数，求f(10)的值。
    public int f1(int n){
        if(n == 20){
            return 1;
        }else if(n == 21){
            return 4;
        }else{
            return 2*f1(n-1) + f1(n-2);
        }
    }
}
